// import { app, BrowserWindow, ipcMain } from 'electron';
// import { join } from 'path';
const electron = require("electron");
const { ipcMain } = require("electron");
const BrowserWindow = electron.BrowserWindow;
const app = electron.app;

const { autoUpdater } = require('electron-updater');
const uploadUrl = 'https://zhengjingjiaoyu.oss-cn-guangzhou.aliyuncs.com/update/' //   //放置安装包和latest.yml的服务器地址
autoUpdater.setFeedURL(uploadUrl)

const path = require("path");
const getMac = require("getmac").default;

const createWindow = () => {
	const win = new BrowserWindow({
		width: 1200,
		height: 800,
		minWidth: 960,
		minHeight: 600,
		webPreferences: {
			nodeIntegration: true, // 设置是否在页面中启用 Node.js 集成模式
			contextIsolation: true, // 设置是否启用上下文隔离模式。
			webviewTag: true, // 开启webview
			// frame: false // 这里设置为false，禁用默认的浏览器窗口框架。
			preload: path.resolve(__dirname, 'preload.js'),
			partition: String(+new Date())
		},
	});
	win.setTitle('正晶教育');
	// win.setMenu(null);  // 取消顶部菜单栏
	win.loadFile(path.join(__dirname, '../dist/index.html'));
	// if (process.env.VITE_DEV_SERVER_URL) {
	// 	win.loadURL(process.env.VITE_DEV_SERVER_URL);
	// } else {
	// 	win.loadFile(join(__dirname, '../dist/index.html'));
	// }
	//   console.log("中文！！");

	let mac = getMac();
	// console.log("MAC地址是:", mac);

	// win.webContents.openDevTools();
	win.webContents.send('mac', mac);

	// autoUpdater.forceDevUpdateConfig = true;  // 开启本地调试
	// autoUpdater.updateConfigPath = path.join(__dirname, "../dev-update.yml")  // 本地测试路径

	
	autoUpdater.autoDownload = true; // 开启自动下载
	autoUpdater.checkForUpdates();

	
	// 检测更新查询异常
	autoUpdater.on('error', function (error) {
		console.log('更新错误',error);
		win.webContents.send('uploadError', error);
		// sendUpdateMessage(message.error)
	})
	// 当开始检查更新的时候触发
	autoUpdater.on('checking-for-update', function () {
		console.log('开始检测更新')
		// sendUpdateMessage(message.checking)
	})
	// 当发现有可用更新的时候触发，更新包下载会自动开始
	autoUpdater.on('update-available', function (info) {
		console.log('当发现有可用更新的时候触发', info);
		// sendUpdateMessage(message.updateAva)
		// autoUpdater.checkForUpdates();
	})
	// 当发现版本为最新版本触发
	autoUpdater.on('update-not-available', function (info) {
		console.log('当发现版本为最新版本触发', info);
		// sendUpdateMessage(message.updateNotAva)
	})
	// 更新下载进度事件
	autoUpdater.on('download-progress', function (progressObj) {
		console.log(progressObj.percent);
		win.webContents.send('downloadProgress', progressObj.percent)
	})
	// 包下载成功时触发
	autoUpdater.on('update-downloaded', function (event, releaseNotes, releaseName, releaseDate, updateUrl, quitAndUpdate) {
		// 主进程向renderer进程发送是否确认更新
		console.log('下载完成，给渲染进程发送消息');
		win.webContents.send('isUpdateNow');

		// 收到renderer进程确认更新
		ipcMain.on('updateNow', (e, arg) => {
			console.log('开始更新')
			autoUpdater.quitAndInstall() // 包下载完成后，重启当前的应用并且安装更新
		})
	})
};

app.whenReady().then(createWindow);

